package com.zhonghui.wms.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.zhonghui.common.annotation.Excel;
import com.zhonghui.common.core.domain.BaseEntity;

/**
 * 智能仓储WMS-入库申请明细对象 wms_warehousing_application_details
 *
 * @author zhonghui
 * @date 2022-05-25
 */
@ApiModel("智能仓储WMS-入库申请明细对象")
public class WmsWarehousingApplicationDetails extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 编号 */
    @ApiModelProperty("编号")
    private Long id;

    /** 入库申请ID */
    @Excel(name = "入库申请ID")
    @ApiModelProperty("入库申请ID")
    private Long warehousingApplicationId;

    /** 物料ID */
    @Excel(name = "物料ID")
    @ApiModelProperty("物料ID")
    private Long materialId;

    /** 仓库ID */
    @Excel(name = "仓库ID")
    @ApiModelProperty("仓库ID")
    private Long warehouseId;

    /** 库区ID */
    @Excel(name = "库区ID")
    @ApiModelProperty("库区ID")
    private Long warehouseAreaId;

    /** 库位ID */
    @Excel(name = "库位ID")
    @ApiModelProperty("库位ID")
    private Long warehouseSeatId;

    /** 到货数量 */
    @Excel(name = "到货数量")
    @ApiModelProperty("到货数量")
    private Double arrivalNum;

    /** 入库数量 */
    @Excel(name = "入库数量")
    @ApiModelProperty("入库数量")
    private Double receiptNum;

    /** 生产批号 */
    @Excel(name = "生产批号")
    @ApiModelProperty("生产批号")
    private String batchNumber;

    /** 生产日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("生产日期")
    private Date manufactureDate;

    /** 生产单位 */
    @Excel(name = "生产单位")
    @ApiModelProperty("生产单位")
    private String productionUnit;

    /** 物料编码 */
    @ApiModelProperty("物料编码")
    @Excel(name = "物料编码")
    private String materialCode;

    /** 物料名称 */
    @ApiModelProperty("物料名称")
    @Excel(name = "物料名称")
    private String materialName;

    /** 型号 */
    @ApiModelProperty("物料型号")
    @Excel(name = "物料型号")
    private String materialModel;

    /** 规格 */
    @ApiModelProperty("物料规格")
    @Excel(name = "物料规格")
    private String materialSpecification;

    /** 单位 */
    @ApiModelProperty("物料单位")
    @Excel(name = "物料单位")
    private String materialUnit;

    /** 单价 */
    @ApiModelProperty("物料单价")
    @Excel(name = "物料单价")
    private BigDecimal materialPrice;

    /** 库区列表 */
    @ApiModelProperty("库区列表")
    private List<WmsWarehouseArea> wmsWarehouseAreaList;

    /** 库位列表 */
    @ApiModelProperty("库位列表")
    private List<WmsWarehouseSeat> wmsWarehouseSeatList;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getWarehousingApplicationId() {
        return warehousingApplicationId;
    }

    public void setWarehousingApplicationId(Long warehousingApplicationId) {
        this.warehousingApplicationId = warehousingApplicationId;
    }

    public Long getMaterialId() {
        return materialId;
    }

    public void setMaterialId(Long materialId) {
        this.materialId = materialId;
    }

    public Long getWarehouseId() {
        return warehouseId;
    }

    public void setWarehouseId(Long warehouseId) {
        this.warehouseId = warehouseId;
    }

    public Long getWarehouseAreaId() {
        return warehouseAreaId;
    }

    public void setWarehouseAreaId(Long warehouseAreaId) {
        this.warehouseAreaId = warehouseAreaId;
    }

    public Long getWarehouseSeatId() {
        return warehouseSeatId;
    }

    public void setWarehouseSeatId(Long warehouseSeatId) {
        this.warehouseSeatId = warehouseSeatId;
    }

    public Double getArrivalNum() {
        return arrivalNum;
    }

    public void setArrivalNum(Double arrivalNum) {
        this.arrivalNum = arrivalNum;
    }

    public Double getReceiptNum() {
        return receiptNum;
    }

    public void setReceiptNum(Double receiptNum) {
        this.receiptNum = receiptNum;
    }

    public String getMaterialCode() {
        return materialCode;
    }

    public void setMaterialCode(String materialCode) {
        this.materialCode = materialCode;
    }

    public String getMaterialName() {
        return materialName;
    }

    public void setMaterialName(String materialName) {
        this.materialName = materialName;
    }

    public String getMaterialModel() {
        return materialModel;
    }

    public void setMaterialModel(String materialModel) {
        this.materialModel = materialModel;
    }

    public String getMaterialSpecification() {
        return materialSpecification;
    }

    public void setMaterialSpecification(String materialSpecification) {
        this.materialSpecification = materialSpecification;
    }

    public String getMaterialUnit() {
        return materialUnit;
    }

    public void setMaterialUnit(String materialUnit) {
        this.materialUnit = materialUnit;
    }

    public BigDecimal getMaterialPrice() {
        return materialPrice;
    }

    public void setMaterialPrice(BigDecimal materialPrice) {
        this.materialPrice = materialPrice;
    }

    public String getBatchNumber() {
        return batchNumber;
    }

    public void setBatchNumber(String batchNumber) {
        this.batchNumber = batchNumber;
    }

    public Date getManufactureDate() {
        return manufactureDate;
    }

    public void setManufactureDate(Date manufactureDate) {
        this.manufactureDate = manufactureDate;
    }

    public String getProductionUnit() {
        return productionUnit;
    }

    public void setProductionUnit(String productionUnit) {
        this.productionUnit = productionUnit;
    }

    public List<WmsWarehouseArea> getWmsWarehouseAreaList() {
        return wmsWarehouseAreaList;
    }

    public void setWmsWarehouseAreaList(List<WmsWarehouseArea> wmsWarehouseAreaList) {
        this.wmsWarehouseAreaList = wmsWarehouseAreaList;
    }

    public List<WmsWarehouseSeat> getWmsWarehouseSeatList() {
        return wmsWarehouseSeatList;
    }

    public void setWmsWarehouseSeatList(List<WmsWarehouseSeat> wmsWarehouseSeatList) {
        this.wmsWarehouseSeatList = wmsWarehouseSeatList;
    }

    @Override
    public String toString() {
        return "WmsWarehousingApplicationDetails{" +
                "id=" + id +
                ", warehousingApplicationId=" + warehousingApplicationId +
                ", materialId=" + materialId +
                ", warehouseId=" + warehouseId +
                ", warehouseAreaId=" + warehouseAreaId +
                ", warehouseSeatId=" + warehouseSeatId +
                ", arrivalNum=" + arrivalNum +
                ", receiptNum=" + receiptNum +
                ", batchNumber='" + batchNumber + '\'' +
                ", manufactureDate=" + manufactureDate +
                ", productionUnit='" + productionUnit + '\'' +
                ", wmsWarehouseAreaList=" + wmsWarehouseAreaList +
                ", wmsWarehouseSeatList=" + wmsWarehouseSeatList +
                '}';
    }
}
